//#include <stdio.h>
//#include <stdlib.h>
//typedef struct Stu{
//	int num;
//	float score;
//	struct Stu* next;
//}LinkNode,*LinkList;
//LinkList CreateList(){
//	LinkList head=NULL,p=NULL,q=NULL;
//	int n1=0;
//	float n2=0;
//	while(1){
//		scanf("%d%f",&n1,&n2);
//		if(n1>0&&n2>0)
//		{
//			q=(LinkList)malloc(sizeof(LinkNode));
//			q->num=n1;
//			q->score=n2;
//			q->next=NULL;
//		}
//		else
//			break;
//		if(!head)
//			head=p=q;
//		else
//			p->next=q;
//		p=q;
//	}
//	return head;
//}
//LinkList DeleteNode(LinkList head){
//	LinkList sNode,pNode,dNode;
//	sNode=pNode=dNode=head;
//	while(pNode)
//	{
//		dNode=head;
//		while(dNode!=pNode)
//		{
//			if(dNode->num==pNode->num)
//				break;
//			dNode=dNode->next;
//		}
//		if(dNode!=pNode)
//		{
//			sNode->next=pNode->next;
//			free(pNode);
//			pNode=sNode;
//		}
//		else{
//			sNode=pNode;
//			pNode=sNode->next;
//		}
//	}
//	return head;
//}
//void PrintList(LinkList head)
//{
//	LinkList ptr=head;
//	while(ptr)
//	{
//		printf("%d\t%f\n",ptr->num,ptr->score);
//		ptr=ptr->next;
//	}
//}
//
//void FreeList(LinkList head)
//{
//	LinkList p,q;
//	p=q=head;
//	while(p){
//		q=p->next;
//		free(p);
//		p=q;
//	}
//}
//int main()
//{
//	LinkList head;
//	head=CreateList();
//	head=DeleteNode(head);
//	PrintList(head);
//	FreeList(head);
//	return 0;
//}

#include <stdio.h>
#include <stdlib.h>
typedef struct Node{
	int data;
	struct Node* next;
}LinkNode,*LinkList;
LinkList CreateList(){
	LinkList head=NULL,p=NULL,q=NULL;
	int n1=0;
	while(1){
		scanf("%d",&n1);
		if(n1>0)
		{
			q=(LinkList)malloc(sizeof(LinkNode));
			q->data=n1;
			q->next=NULL;
		}
		else
			break;
		if(!head)
			head=p=q;
		else
			p->next=q;
		p=q;
	}
	return head;
}
LinkList ReverseList(LinkList head){
	LinkList sNode,pNode,qNode;
	sNode=qNode=NULL;
	pNode=head;
	while(pNode)
	{
		qNode=pNode->next;
		pNode->next=sNode;
		sNode=pNode;
		pNode=qNode;
	}
	return sNode;
}
void PrintList(LinkList head)
{
	LinkList ptr=head;
	while(ptr)
	{
		printf("%d\n",ptr->data);
		ptr=ptr->next;
	}
}

void FreeList(LinkList head)
{
	LinkList p,q;
	p=q=head;
	while(p){
		q=p->next;
		free(p);
		p=q;
	}
}
int main()
{
	LinkList head;
	head=CreateList();
	head=ReverseList(head);
	PrintList(head);
	FreeList(head);
	return 0;
}
